package br.com.bmb.monitorimoveis.util;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Convert {

	/**
	 * Converte uma String para um Integer.
	 * No caso de erro, retorna 0.
	 * @param str
	 * @return
	 */
	public static int strToInt(String str) {
		int value = 0;
		
		try {
			value = Integer.valueOf(str);
		} catch (NumberFormatException e) {
			System.out.println("String \"" + str + "\" não pode ser convertida para int!");
		}
		return value;
	}
	
	/**
	 * Converte um número representado numa String para um Double.
	 * No caso de erro, retorna o valor 0.00.
	 * @param str
	 * @return
	 */
	public static double strToDouble(String str) {
		double value = 0.00;
		
		try {
			value = Double.valueOf(str);
		} catch (NumberFormatException e) {
			System.out.println("String \"" + str + "\" não pode ser convertida para double!");
		}
		return value;
	}
	
	/**
	 * Primeiro, converte uma string no formato #.###,## para o formato ####.##
	 * Depois, converte essa string para double. 
	 * É necessário pq muitos valores aparecem no formato brasileiro (com vírgula separando os decimais).
	 * @param str
	 * @return
	 */
	public static double strToDoubleWithFormat(String str) {
		return strToDouble(str.replace(".", "").replace(",", "."));
	}
	
	/**
	 * Converte uma String para Booleano.
	 * Caso a String tenha o valor SIM, retorna true.
	 * Se tiver o valor NÃO ou der erro na conversão, retorna false.
	 * @param str
	 * @return
	 */
	public static boolean strToBool(String str) {
		boolean value = false;
		
		if (str != null && str.length() > 0 && str.equalsIgnoreCase("SIM")) {
			value = true;
		}
		
		return value;
	}

	/**
	 * Converte uma String no formato dd/MM/yy para uma data.
	 * Retorna null quando da erro na conversão.
	 * @param str
	 * @return
	 */
	public static Date strToDate(String str) {
		
		DateFormat formatter = new SimpleDateFormat("dd/MM/yy");  
		Date data = null;
		
		try {
			data = formatter.parse(str);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		return data;
	}
	
}
